// 使用Express框架构建web服务

// 1 导入express
const express = require("express");
// 2 创建app应用对象
const app = express();
// 3 配置请求路由，并做对用请求响应处理
// 使用中间件配置静态访问资源目录(将所有的Ajax测试静态文件都放在此目录)
app.use("/", express.static("public"));
// （中间件）使用编码处理post请求参数
app.use(express.urlencoded({ extended: true }))

// (get /test) Ajax的请求处理
app.get("/test", (req, res) => {
    // 这是使用CORS（跨域资源共享）实现跨域访问
    // 设置响应头信息，允许所有域名访问
    res.header("Access-Control-Allow-Origin", "*");
    res.send("Hello World!");
})
// (get /test01) 处理Ajax的get请求参数
app.get("/test01", (req, res) => {
    // 从请求对象中获取请求参数信息
    let x1 = parseInt(req.query.m1);
    let x2 = parseInt(req.query.m2);
    // 拼装求和计算公式，并响应
    res.send(`${x1} + ${x2} = ${x1+x2}`);
})
// (post /test02) 处理Ajax的get请求参数
app.post("/test02", (req, res) => {
    // 从请求对象中获取请求参数信息
    let x1 = parseInt(req.body.m1);
    let x2 = parseInt(req.body.m2);
    //console.log(x1, x2);
    // 拼装求和计算公式，并响应
    res.send(`${x1} + ${x2} = ${x1+x2}`);
    //res.send(`abc('${x1} + ${x2} = ${x1+x2}')`);
})

// (get  /data) 定义JSON数据的响应
app.get("/data", (req, res) => {
    const userList = [
        {"name":"王建国","age":21},
        {"name":"刘江华","age":19},
        {"name":"张立新","age":22}
    ];
    // 响应json数据
    res.json(userList);
});

// (get /testAJAX) 定义jsonp的跨域Ajax请求
app.get('/testAJAX', (req, res) => {
    // 获取请求参数callback的值(回调函数名)
    const fn = req.query.callback;
    res.send(`${fn}('Hello World!');`);
});


// 4 设置监听端口 启动服务
app.listen(3000, () => {
    console.log("服务已开启，端口：3000");
});